It is common in computer systems to represent and convey information to a user through graphic representations. These representations may take a variety of forms, such as for example, alphanumeric characters, cartesian or other coordinate graphs, spread sheets, as well as shapes of physical objects on a display screen. Historically, humans have interfaced with computers through a system of discrete commands which typically comprise a combination of both text and mathematical symbolic characters. However, the ease with which a user becomes proficient in programming or interacting with a computer is generally a function of how close the system models the logical thought of the user himself. In recent years, systems have been developed to minimize the learning and acclimation period which a user must go through in order to become proficient in the interaction with the computer system. These so-called "object oriented" or "small talk" systems replace many common coded programming commands with two-dimensional graphics and animation on a computer display.
It has been found that a person can absorb and manipulate information presented in a visual context much faster than if represented merely by text. One common small talk interface approach utilizes multiple "windows" displayed on a cathode ray tube (CRT) used for display in which combination of text and graphics are used to convey information. See, for example, D. Robson, "Object Oriented Software Systems", Byte, August 1981, pg. 74, Vol. 6, No. 8.
In some instances, such as when using a "spread sheet" program, data is represented by alphanumeric characters stored in a multiplicity of "cells" identified by a row and column address on the display screen. The manipulation of data disposed in a spread sheet typically requires the user to enter a variety of complex commands in order to perform operations on data disposed in selected cells. The requirement that the user enter complex commands into the computer system to manipulate the spread sheet data renders operation of the data processing system by the user more difficult, and slows learning time before the user becomes proficient in the particular command structure of the program.
In order to avoid the necessity of the user learning numerous commands to manipulate data in a computer system, so called "context oriented" programming languages have been developed. An example of a typical request in a context oriented language would be "ERASE THIS". The computer system must determine what "THIS" refers to in the context of the application at hand. Other, similar commands, would be "ERASE THIS ROW", or "GRAPH JANUARY TO MARCH". The data processing system must determine the context and range of the user's command prior to being able to execute the command. Outside of the environment of a "spread sheet", context sensitive systems may involve the use of graphic representations of arbitrary regions on a display screen. The data processing system must determine which region the user is referring to prior to execution of the desired command. Accordingly, one of the first operations the data processing system must complete is the determination of the boundaries of the region, or, in the case of a spread sheet, the region boundaries in terms of rows and columns, which define the region which the user wants to operate upon. Although to the user the data processing system may appear to have innate intelligence in being able to determine the context and region the user is referring to, in reality the data processing system must follow discrete and identifiable sequences of operations to achieve the desired result.
As will be disclosed below, the present invention provides apparatus and methods whereby the boundaries of any arbitrarily shaped region may be defined, to permit a data processing system to determine the context of a command and proceed with its execution on the desired region.